package org.wzl.springframework;

import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

/**
 * @author 卫志龙
 * @description: Bean工厂类
 * @date 2024/1/16 22:20
 */
public class BeanFactory {

    /**
     * beanMap
     * @return:
     * @author 卫志龙
     * @date: 2024/1/16 22:28
     */
    private Map<String, BeanDefinition> beanDefinitionMap = new ConcurrentHashMap<>();

    /**
     * 获取bean对象
     * @param name  bean对象的名称
     * @return      bean
     */
    public Object getBean(String name) {
        return beanDefinitionMap.get(name).getBean();
    }

    /**
     * 注册bean对象
     * @param name              bean对象名称
     * @param beanDefinition    bean的定义信息类
     */
    public void registerBeanDefinition(String name, BeanDefinition beanDefinition) {
        beanDefinitionMap.put(name, beanDefinition);
    }

}
